/**
 * API 服务类
 * 封装所有 API 请求
 */

const { get, post, put, del } = require('../utils/request');

/**
 * 用户相关 API
 */
const userApi = {
  // 登录
  login: (data) => post('/api/auth/login', data),
  
  // 获取用户信息
  getUserInfo: (id) => get(`/api/auth/me/${id}`),
  
  // 获取家庭成员列表
  getFamilyMembers: () => get('/users/family'),
  
  // 更新用户信息
  updateUserInfo: (id, data) => put(`/users/${id}`, data)
};

/**
 * 菜单相关 API
 */
const menuApi = {
  // 获取菜品类别
  getCategories: () => get('/menus/categories'),
  
  // 获取所有菜品
  getDishes: () => get('/menus/dishes'),
  
  // 获取今日菜单
  getTodayMenu: () => get('/menus/today'),
  
  // 获取历史菜单
  getHistoryMenus: () => get('/menus/history'),
  
  // 获取推荐菜单
  getRecommendedMenu: () => get('/menus'),
  
  // 创建菜单
  createMenu: (data) => post('/menus', data),
  
  // 更新菜单
  updateMenu: (id, data) => put(`/menus/${id}`, data),
  
  // 更新菜单中的菜品
  updateMenuDishes: (id, data) => put(`/menus/${id}/dishes`, data)
};

/**
 * 订单相关 API
 */
const orderApi = {
  // 获取所有订单
  getOrders: () => get('/orders'),
  
  // 获取今日订单
  getTodayOrders: () => get('/orders/today'),
  
  // 获取指定订单
  getOrder: (id) => get(`/orders/${id}`),
  
  // 创建订单
  createOrder: (data) => post('/orders', data),
  
  // 更新订单
  updateOrder: (id, data) => put(`/orders/${id}`, data),
  
  // 删除订单
  deleteOrder: (id) => del(`/orders/${id}`)
};

/**
 * 消息相关 API
 */
const messageApi = {
  // 获取所有消息
  getMessages: () => get('/messages'),
  
  // 获取指定消息
  getMessage: (id) => get(`/messages/${id}`),
  
  // 创建消息
  createMessage: (data) => post('/messages', data),
  
  // 更新消息
  updateMessage: (id, data) => put(`/messages/${id}`, data),
  
  // 删除消息
  deleteMessage: (id) => del(`/messages/${id}`)
};

/**
 * 通知相关 API
 */
const notificationApi = {
  // 获取所有通知
  getNotifications: () => get('/notifications'),
  
  // 获取指定通知
  getNotification: (id) => get(`/notifications/${id}`),
  
  // 创建通知
  createNotification: (data) => post('/notifications', data),
  
  // 更新通知
  updateNotification: (id, data) => put(`/notifications/${id}`, data),
  
  // 删除通知
  deleteNotification: (id) => del(`/notifications/${id}`)
};

module.exports = {
  userApi,
  menuApi,
  orderApi,
  messageApi,
  notificationApi
};
